/**
 * 空间分析相关类型定义
 */

// 基础分析请求参数
export interface BaseAnalyzeRequest {
  spaceId?: string
  queryPublic?: boolean
  queryAll?: boolean
}

// 空间分类分析请求
export type SpaceCategoryAnalyzeRequest = BaseAnalyzeRequest

// 空间分类分析响应
export interface SpaceCategoryAnalyzeResponse {
  category: string
  count: number
  totalSize: number
}

// 空间排行分析请求
export interface SpaceRankAnalyzeRequest {
  topN: number
}

// 空间大小分析请求
export type SpaceSizeAnalyzeRequest = BaseAnalyzeRequest

// 空间大小分析响应
export interface SpaceSizeAnalyzeResponse {
  sizeRange: string
  count: number
}

// 空间标签分析请求
export type SpaceTagAnalyzeRequest = BaseAnalyzeRequest

// 空间标签分析响应
export interface SpaceTagAnalyzeResponse {
  tag: string
  count: number
}

// 空间使用情况分析请求
export type SpaceUsageAnalyzeRequest = BaseAnalyzeRequest

// 空间使用情况分析响应
export interface SpaceUsageAnalyzeResponse {
  usedSize: number
  maxSize: number | null
  sizeUsageRatio: number | null
  usedCount: number
  maxCount: number | null
  countUsageRatio: number | null
}

// 用户上传行为分析请求
export interface SpaceUserAnalyzeRequest extends BaseAnalyzeRequest {
  userId?: string
  timeDimension: 'day' | 'week' | 'month'
}

// 用户上传行为分析响应
export interface SpaceUserAnalyzeResponse {
  period: string
  count: number
}

// API响应类型
export interface ApiResponse<T> {
  code: number
  message: string
  data: T
}

// 查询条件类型
export interface AnalyzeQueryCondition {
  type: 'all' | 'public' | 'space'
  spaceId?: string
  spaceName?: string
}
